linux中scp命令使用技巧详解(传输速度)

您所在的位置:网站首页 网速下降了 可以提速么 linux中scp命令使用技巧详解(传输速度)

linux中scp命令使用技巧详解(传输速度)

2024-07-08 03:40| 来源: 网络整理| 查看: 265

在linux中scp命令与cp命令一样的是复制文件,下面小编来给各位同学介绍一下关于linux中scp命令使用技巧详

解,希望此方法对大家会帮助。

scp 命令     scp 可以在 2个 linux 主机间复制文件;

命令基本格式:         scp [可选参数] file_source file_target

======  从 本地 复制到 远程  ======  * 复制文件:          * 命令格式:                  scp local_file remote_username@remote_ip:remote_folder                  或者                  scp local_file remote_username@remote_ip:remote_file                  或者                  scp local_file remote_ip:remote_folder                  或者                  scp local_file remote_ip:remote_file

                第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;                  第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;          * 例子:                  scp /home/space/music/1.mp3 [email protected]:/home/root/others/music                  scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3                  scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music                  scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:          * 命令格式:                  scp -r local_folder remote_username@remote_ip:remote_folder                  或者                  scp -r local_folder remote_ip:remote_folder

                第1个指定了用户名,命令执行后需要再输入密码;                  第2个没有指定用户名,命令执行后需要输入用户名和密码;          * 例子:                  scp -r /home/space/music/ [email protected]:/home/root/others/                  scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

                上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======  从 远程 复制到 本地  ======  从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:          scp [email protected]:/home/root/others/music /home/space/music/1.mp3          scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .  

注意两点: 1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下: #scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator 2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

加速scp传输速度

结论 声明:这里给出的测试数据不具有一般性,仅供参考。测试与数据本身特性有很大关系,本文使用InnoDB的redo log作为测试数据。

* 改变ssh加密算法,可以让速度更快;通常,越弱的加密算法,速度越快

* 通常压缩会降低scp速度,但这与数据类型有很大关系,对压缩率非常高的数据启用压缩,可以加速

* 压缩级别对传输效率影响很小

* 用于完整性校验的不同MAC( message authentication code)算法,对性能约有10%-20%的影响。

所以,简单尝试如下,让你的SCP速度double一下:

scp -r -c arcfour128 ... scp -r -c aes192-cbc ... scp -r -c arcfour128 -o "MACs [email protected]" ... 注:启用压缩使用参数: -o "Compression yes"

2. 测试数据:加密算法和压缩的影响 这里对比了12种ssh中实现的加密算法和是否使用压缩的传输效率,测试文件使用的是InnoDB的1GB*4的日志文件(注意:不同类型的文件测试结果会很不同),这里纵坐标单位为MB/s,数据分为压缩传输和不压缩传输两组:

screen-scp-compare-cipher-compression

原始数据:scp_speed.txt

可以看到,不同加密算法传输速度相差很大;使用了压缩之后,速度下降很多,也看到不同加密算法加密后区别并不大。

3. 关于是否启用压缩 * 压缩只有在网络传输速度非常慢,以致于压缩后节省的传输时间大于压缩本身的时间,这时才有效果,所以是否启用压缩,需要实际测试

* 压缩比很低的数据,不要再启用压缩(例如已经压缩过的数据、视频等)

* 通常建议,传输前先压缩,而不是使用ssh的压缩;建议使用pigz/lbizp2等并行压缩工具

* 数据中大量重复、空洞,这类适合压缩的数据,可以尝试压缩选项,例如如下是一组,大量"空洞"数据的测试:

chart_1

看到,压缩大大提高了传输效率

4. "压缩级别"对传输速度影响不大 最后一组对比是,将压缩级别从1改到9,对比传输速度,纵坐标单位MB/s,对12种加密算法分别使用了测试9个压缩级别,数据如下:

screen-scp-compare-compression-level

大图链接 原始数据:scp-compression-level.txt

可以看到,压缩级别对传输影响较小。ssh使用的默认压缩级别是6。

5. 测试数据:完整性校验算法MACs选择 通过选项Macs可以设置对应的哈希算法,man ssh_config可以看到支持哪些哈希算法。这里对了比了12中加密算法下使用不用的完整性校验算法的性能情况:

screen-scp-compare-macs-all

看到,绝大数情况下"[email protected]"(关于此哈希)性能都更好,所以建议尝试使用此哈希算法做验证,看看你的场景下速度是否与提升。也可以看到,默认的hmac-md5哈希在默认的加密aes128-ctr下表现比较好;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3